-
Notifications
You must be signed in to change notification settings - Fork 89
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[2단계 - 자주 가는 음식점] - 초코(강다빈) 미션 제출합니다. #176
Conversation
Co-Authored-By: 00kang <[email protected]>
- eslint - prettier - tsconfig(경로 별칭) - package.json(typescript-eslint 설치) Co-Authored-By: 00kang <[email protected]>
Co-Authored-By: 00kang <[email protected]>
Co-Authored-By: 00kang <[email protected]>
Co-Authored-By: 00kang <[email protected]>
Co-Authored-By: 00kang <[email protected]>
Co-Authored-By: 00kang <[email protected]>
Co-Authored-By: 00kang <[email protected]>
Co-Authored-By: 00kang <[email protected]>
Co-Authored-By: 00kang <[email protected]>
Co-Authored-By: 00kang <[email protected]>
Co-Authored-By: 00kang <[email protected]>
Co-Authored-By: 00kang <[email protected]>
Co-Authored-By: 00kang <[email protected]>
Co-Authored-By: 00kang <[email protected]>
Co-Authored-By: 00kang <[email protected]>
Co-Authored-By: 00kang <[email protected]>
Co-Authored-By: 00kang <[email protected]>
Co-Authored-By: 00kang <[email protected]>
Co-Authored-By: 00kang <[email protected]>
- 페이지가 로드됐을 때 - 필터를 변경할 때 Co-Authored-By: 00kang <[email protected]>
Co-Authored-By: 00kang <[email protected]>
Co-Authored-By: 00kang <[email protected]>
Co-Authored-By: 00kang <[email protected]>
Co-Authored-By: 00kang <[email protected]>
Co-Authored-By: 00kang <[email protected]>
Co-Authored-By: 00kang <[email protected]>
Co-Authored-By: 00kang <[email protected]>
Co-Authored-By: 00kang <[email protected]>
Co-Authored-By: 00kang <[email protected]>
- 원본 배열이 아닌 복사본으로 sorting - filteredAndSortedByOptions 메서드의 반환타입 명시
- 임포트 파일명 수정 - global.css 에서 분리 - 필요없는 주석 삭제
- 모달에 스타일도, 기능도 아무것도 적용되고 있지 않는 문제 발생!
- template 내의 style css 모듈로 분리 - RestaurantItem에서 렌더링하던 데이터, RestaurntDetail로 넘겨주기
이벤트 동작 등록 안되던 오류 해결해결 방법 : RestaurantItem.js 내의 아래 코드 삭제
modal 웹 컴포넌트에 넣는 detail container가 클릭되기를 원했으나 위에 방법처럼 innerHTML로 slot 자체를 덮어씌워서일까? 아직 정확한 오류 원인 파악은 안됨 |
이라는 기준으로 전체적인 코드를 봤을때, |
보통 이벤트 리스너가 달리지 않는 이유는 타이밍 이슈가 대부분 입니다. 웹 컴포넌트가 완전히 로드되고 초기화되기 전에 이벤트 리스너를 추가하거나 요소에 접근하려고 하면 문제가 발생하기 때문에 컴포넌트 생명주기를 확인해보시면 좋을거 같아요. (console.log 등을 이용하면 좋습니다.) 그리고 일부 버블링 캡처링 이슈도 있을수 있는데, 웹 컴포넌트의 이벤트가 바깥으로 전파되지 않거나 외부 이벤트가 컴포넌트 내부로 전파되지 않을 수 있습니다. 이 부분도 같이 확인해보면 좋을거 같아요 |
코드를 갈아 엎기전에 문제 원인을 명확하게 파악 해보면 좋을거 같아요. 문제의 원인을 정확히 이해하고 있지 않은 상태에서 코드를 처음부터 다시 작성하는 것은 같은 문제를 반복할 수 있습니다. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
안녕하세요! 초코
같이 구조에 대해 많이 얘기해보고 고민해봤는데, 1단계에 비해 구조가 많이 좋아진거 같아요. 그래서 어떠한 기능이 추가됐을때, 어느곳에서 처리해줘야할지도 명확해진거 같고 각각의 책임이 잘 나눠진거 같아요. 한가지 아쉬운점은 아무래도 시간이 부족해 완성도 측면이 조금 아쉬운데 이부분은 시간이 된다면 좀더 보완해보면 좋을거 같아요.
대부분 코드가 비슷해서 지금 남겨드린 코드는 코드 전반적으로 다 해당되는 부분이니까 코멘트를 먼저읽어보고 수정하는것을 추천드려요!
2단계 미션 하느라 고생많으셨습니다 👍 다음 단계 미션도 화이팅입니다 💯
@@ -1,4 +1,4 @@ | |||
<!DOCTYPE html> | |||
<!doctype html> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
여기 수정하신 이유가 있으실까요?
updatedLinkElement.addEventListener('click', (event) => { | ||
event.stopPropagation(); | ||
}); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
여기 코드의 이유가 있을까요??
#updateFavoriteIcon(isFavorite) { | ||
const favoriteIcon = this.querySelector('.restaurant-detail__favorite-button img'); | ||
const favorite = isFavorite !== undefined ? isFavorite : JSON.parse(localStorage.getItem('favorite')) || false; | ||
favoriteIcon.src = favorite ? './favorite-icon-filled.png' : './favorite-icon-lined.png'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
여기서 제대로 경로를 못찾아서 이미지가 깨지는 이유겠네요
} | ||
|
||
#handleClose() { | ||
console.log('close'); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
확인이 끝난 console.log는 지워주는게 좋습니다~
} else { | ||
this.#updateRestaurantList(this.#webView.categoryFilter, this.#webView.sortingFilter); | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
#updateRestaurantList, #updateFavoriteRestaurantList, #handleFormSubmitUpdateUI 메서드에서 UI 업데이트 로직이 중복되고 있습니다. 이러한 중복은 코드의 유지보수를 어렵게 만듭니다. 가능하다면, UI 업데이트를 처리하는 공통 함수를 만들어 코드 중복을 줄여보면 어떨까요?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
RestaurantManager의 메소드 실행 중 발생할 수 있는 예외나 에러는 어디서 처리될까요?
안녕하세요 케빈, 🍫초코🍫입니다.
먼저 step1의 미션에서 구현한 웹 컴포넌트를 최대한 활용하고자 노력했으나, 이 방식을 고집한 결과 이번 미션의 요구사항을 다 구현해내지 못했다는 양해의 말씀드립니다..ㅠ
🏃♀️ 실행 방법
🔗 배포 링크
📍 학습 목표
📂 폴더 구조
파일 설명
📜 파일 트리 보기
. src ┣ domain ┃ ┗ RestaurantManager.ts ┣ service ┃ ┗ WebController.js ┣ view ┃ ┣ components ┃ ┃ ┣ GNB.js ┃ ┃ ┣ Modal.js ┃ ┃ ┣ RestaurantDetail.js ┃ ┃ ┣ RestaurantForm.js ┃ ┃ ┣ RestaurantItem.js ┃ ┃ ┣ RestaurantList.js ┃ ┃ ┣ Select.js ┃ ┃ ┗ Tab.js ┃ ┣ imgs ┃ ┃ ┣ add-button.png ┃ ┃ ┣ category-asian.png ┃ ┃ ┣ category-chinese.png ┃ ┃ ┣ category-etc.png ┃ ┃ ┣ category-japanese.png ┃ ┃ ┣ category-korean.png ┃ ┃ ┣ category-western.png ┃ ┃ ┣ favorite-icon-filled.png ┃ ┃ ┗ favorite-icon-lined.png ┃ ┣ styles ┃ ┃ ┣ global.css ┃ ┃ ┣ Gnb.css ┃ ┃ ┣ Modal.css ┃ ┃ ┣ RestaurantDetail.css ┃ ┃ ┣ RestaurantForm.css ┃ ┃ ┣ RestaurantList.css ┃ ┃ ┣ Select.css ┃ ┃ ┗ Tab.css ┃ ┗ WebView.js ┗ index.js
현재 진행 상황
❓ 질문사항